# @Time : 2024-09-30 9:25
# @Author : Fioman 
# @Phone : 13149920693
"""
向前端ui发送消息的类,创建为一个单独的模块比较好,这样别人使用的时候就直接导入即可
"""
import json

import app_config


def send_start_state_to_ui(start_info):
    """
    发送设备启动提示框
    @param start_info:
    @return:
    """
    msg_type = "produceState"
    msg = {
        "val": "produceStartModal",
        "modalVisible": True if start_info != "" else False,
        "produceStartInfo": start_info,
    }
    send_msg_to_ui(msg_type, msg)


def send_prod_error_to_ui(error_msg):
    msg_type = "produceState"
    msg = {
        "val": "errorState",
        "errorInfo": error_msg
    }
    send_msg_to_ui(msg_type, msg)


def send_working_info_to_ui(new_value):
    msg_type = "produceState"
    msg = {
        "val": "workingInfo",
        "data": new_value
    }
    send_msg_to_ui(msg_type, msg)


def send_msg_to_ui(msg_type, msg):
    """
    将websocket_queue的内容发送给前端
    :param msg_type: 消息类型
    :param msg: 消息的内容
    :return:
    """
    app_config.websocket_q.put(json.dumps({msg_type: msg}))


def send_device_state_to_ui(msg):
    """
    更新设备状态到UI,消息类型为deviceStates
    :return:
    """
    msg_type = "deviceStates"
    send_msg_to_ui(msg_type, msg)


def send_order_state_to_ui(msg):
    """
    更新工单状态UI,消息类型为orderStates
    :param msg:
    :return:
    """
    msg_type = "orderStates"
    send_msg_to_ui(msg_type, msg)
